More implementation, need to handle attributes