added readme and implementation cleanup