tweak api, refactor result classes