Merge pull request #2 from ducem/Base-Architecture

Add Base Architecture
Merge pull request #3 from ducem/master

Fixed issue
add unit tests and swap function
add weight unit
improvements code
Merge pull request #4 from raudinC/dev

add unit tests and swap function