add scope and private methods