v1 finished, basic functionality