Make design composite. Try to keep the api as same as possible. create will write to disk while build will just create strucutre in memory