add structs and methods for remaining resources