More clean up and implementation