added method implementations