small refactorings.
myself -> myself()
big design refactoring, eliminate package cycles.
add checks not null for public api.