Copies Brookr's framework, I need to fill in methods