factored out plugin responsibilities; working API