finished blp for now, will refactor later