eliminated unnecessary interfaces. also, package refactor.