add base movement strategy resolver
refactor entities