first iteration to implement #1