refactoring
start implementing properties resolver
finished implementing properties resolver