final version 1