after self codereview