basic package framework