basically the first complete functionality version