double implementation. woops.