finished implementing better custom attributes