needs cleanup
vector support
refactoring
bugfixing
cleanup