Revised to use attribute interfaces
Fixed inconsistent naming scheme