refactored and moved additional features to another repo