change constructor to private