fixes
work towards strategies + refactoring
add logic bulitins
remove conditions from pattern matching

will be replaces with more general mechanism later
propagate the fixes
more structure