simplify everything and use the clone pattern