added cleaner abstract class implementations
temp files directory configurable
compute in external process