You might want to look into RE or Element design