working but not featureful and very buggy qt4 implementation