There is much code redundancy there, must be refactored at some point. Also related to #56 - [x] Sources done in #86