close #1 replace properties with map