changed to private interface