separated aggregate with snapshoting to a different repository and made it using composition instead