v1.0 finished & tested