Giving some order to this project

These commits should make development easier & cleaner. For public use, a prepared package should be released.