Could probably be simplified to just moveEntity(GenericEntity, Position) where just the newPos is passed into the method. Then get the current position of the entity by calling its getPosition method. Note that this would then have to be called prior to setting the entity's new position internally. The advantage is you wouldn't have to bother checking what's currently there.