added pre- and post-compilers and cleanup