Cleanup, better requirements handling, and sample project