split running and assertions apart into separate classes

also remove necessity of directory / file naming conventions, improve the helper methods, etc etc.