breaking it apart and making it a proper renderer