Splitted library into multiple files
Improved structure