Clean up code, add requirements