own vector class, refined input etc