basic functionality for program starting