final v1

should be all correct however may change