breaking out tap functions