splited to nicer dir structrue