Cleaned up private interface