fix #2, added plugin structure