Asymmetric and symmetric classes splitted.
Unit tests implemented.