More work on first part (GoF)