removed some extra dependencies and new code structure