moved to src folder
decomposed into few files