refactored some texture code and started implementing ElementList