How to write a good application: its types and procedures, the usage of imagination