working on xyz generations