added custom logger
added interruption handling
added renderer interface