separate initialization