Working but could use some cleanup and usage flexibility.