don't pass project path around any more, allow overriding of runtime() method