refactored. added aspects
refactoring
fixed tests