progress implementation & bug fixes