Should probably be making some incremental commits here and there :S