add semi-working skeleton