prototype init