Refactoring vpltk

See details in commit logs and issue #51 for more details.