Refactored Navigation #59

Here's my initial proposal, see if this could be improved further.
Please, name it as CoreNavigation