+TODO: resource saving
might not be necessary but it's a good idea NTL