lifting
result class + wrapping refactor