commented out some complex functionality, answer needs work