use callbacks to resolve attribute values of components