refined the interface
added nested attributes